package com.telit.common.entity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;

import java.io.Serializable;


/**
 * @Auther amy
 * @Describe 分页的统一格式
 */
@Builder
@Data
@AllArgsConstructor
@ApiModel(value = "PageData", description = "分页结果")
public class PageData<T> implements Serializable {

    public PageData() {
    }

    /**
     * 新增 pages 属性，由于部分调用使用了除 pages 属性的构造方法，所以需要提供所需的构造方法
     */
    public PageData(int count, int current, int size, T datas) {
        this.count = count;
        this.current = current;
        this.size = size;
        this.datas = datas;
    }

    /**
     * 总数目
     */
    @ApiModelProperty(value = "总数目")
    private int count;

    /**
     * 当前页
     */
    @ApiModelProperty(value = "当前页")
    private int current;

    /**
     * 每页多少条
     */
    @ApiModelProperty(value = "每页多少条")
    private int size;

    /**
     * 返回的具体数据
     */
    @ApiModelProperty(value = "返回的具体数据")
    private T datas;

    /**
     * 总页数
     */
    private int pages;

}
